package leetcode_core.leetcode_4;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 功能描述
 *
 * @author: 张庭杰
 * @date: 2022年10月05日 10:55
 */
public class SubdomainVisits {
    public List<String> subdomainVisits(String[] cpdomains) {
        Map<String,Integer> memo = new HashMap<>();
        for(int i = 0;i<cpdomains.length;i++){
            String s = cpdomains[i];
            int indexOfPlace = s.lastIndexOf(" ");
            int num = Integer.parseInt(s.substring(0,indexOfPlace));
            //然后开始解析后面的字符串,注意,这时候要倒着遍历,当遇到空格的时候截断
            for(int j = s.length()-1;j>indexOfPlace;j--){
                if(s.charAt(j) == '.'){
                    //这时候就遇到了一级域名,对其进行计数
                    String subString = s.substring(j+1);
                    System.out.println(subString);//检查看分割地对不对
                    memo.put(subString,memo.getOrDefault(subString,0)+num);
                }
            }
            //别忘了最后还有
            String subString = s.substring(indexOfPlace+1);
            System.out.println(subString);
            memo.put(subString,memo.getOrDefault(subString,0)+num);
        }
        List<String> ans = new ArrayList<>();
        //最后开始对map进行遍历解算
        for (String s : memo.keySet()) {
            //首先获取num
            String res = "";
            Integer num = memo.get(s);
            res += (num)+" "+s;
            ans.add(res);
        }
        return ans;
    }

}
